# Date： 2023/2/19 11:28
# 什么是字典
#      --> Python 的内置数据结构之一，和列表一样，是一个可变序列。以键值对的方式处理

# 字典的原理
#      --> 字典的实现原理与查字典类似，根据 key 查找 value 所在的位置。

# 字典的创建和删除
score={'张三': 20, '李四': 25, '王麻子': 25, '赵五': 25}
print(score)
print(type(score))

peop=dict(name='jack', age=20)
print(peop)

# 空字典
d={}
print(d)


# 字典的查询操作
print(score['张三'])
print(score.get('李四'))
print(score.get('麻七', 99))    # 99 是在查找 “麻七” 所对的 value 不存在时，提供的一个默认值


# key 的判断
# key 的判断  in：指定的 key 在字典中存在返回 True              '张三' in score
#            not in: 指定的 key 在字典中不存在返回 True        'Marry' not in score
print('张三' in score)
print('Marry' not in score)

# 字典的删除
del score['张三']
print(score)
# score.clear()
# print(score)

# 字典的新增
score['张三']=90          # 删除指定的键值对
print(score)


# 获取字典视图的三个方法：
#       keys(): 获取字典中所有的 key
#       values(): 获取字典中所有 value
#       items(): 获取字典中所有 键值对
keys=score.keys()
print(list(keys))

values=score.values()
print(values)
print(list(values))     # 元组


print("-------------------字典常用操作----------------------")
for item in score:
    print(item, score[item], score.get(item))

print("--------------- 字典生成式 --------------------")
# 内置函数 zip(): 用于将可迭代的对象作为参数，将对象中对应的元素打包成一个元组，然后返回由这些元组组成
items=["Fruits", "Books", "Others"]
prices=[96, 85, 56]
lst=zip(items, prices)
print(list(lst))
